package com.itheima.collection1;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;

public class TraversalDemo3 {

    public static void main(String[] args) {

        //Collection的三种遍历方式

        //1.迭代器遍历
        Collection<String> list1 = new ArrayList<>();
        list1.add("hello");
        list1.add("world");
        list1.add("java");
        list1.add("C++");
        System.out.println(list1);
        //1.1 获取迭代器对象
        Iterator<String> it = list1.iterator();     //默认指向集合的第一个元素
        while(it.hasNext()){        //判断当前是位置否有数据
            //1.2 获取元素
            String s = it.next();       //取出当前位置数据并向后移位
            System.out.println(s);
        }

        System.out.println("=======================");

        //2.增强for循环遍历（增强for也能用来遍历数组）
        //增强for循环遍历集合本质上是迭代器遍历集合的简化写法
        for(String s : list1){
            System.out.println(s);
        }

        System.out.println("=======================");

        //3.Lambda表达式遍历
        /*list1.forEach(new Consumer<String>() {      //函数式接口的匿名内部类
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });*/
        list1.forEach(s -> System.out.println(s));
        //list1.forEach(System.out::println);     //方法引用
    }
}
